/**
 * project: finance-manage
 * package: com.example.interfaces
 * 接口： 逻辑处理 > 数据操作
 * 实现于 package com.example.controllers;
 */

package com.example.interfaces;

import com.example.models.BillDataModel;
import com.example.models.JsonModel;

public interface DataControlInterface {

    /**
     * 添加账单数据
     * @param username 用户名
     * @param personalIdentificationCode 个人识别码
     * @param bill 账单数据模型
     * @return JsonModel 返回结果
     */
    JsonModel appendBillData(String username, String personalIdentificationCode, BillDataModel bill);

    /**
     * 查询账单数据
     * @param username 用户名
     * @param personalIdentificationCode 个人识别码
     * @param count 查询条数
     * @return JsonModel 返回结果
     */
    JsonModel getBillsData(String username, String personalIdentificationCode, int count);

    /**
     * 删除账单数据
     * @param username 用户名
     * @param personalIdentificationCode 个人识别码
     * @param bid 账单ID
     * @return JsonModel 返回结果
     */
    JsonModel deleteBillData(String username, String personalIdentificationCode, int bid);

    /**
     * 修改账单数据
     * @param username 用户名
     * @param personalIdentificationCode 个人识别码
     * @param bill 账单数据模型
     * @return JsonModel 返回结果
     */
    JsonModel updateBillData(String username, String personalIdentificationCode, BillDataModel bill);

    /**
     * 关闭数据库连接
     */
    void close();
}
